#pragma once
#include <functional>
#include <queue>
#include <mutex>
#include "../interface/ClientConfigInterface.hpp"

class ClientThreadExecutionConfig : public ClientConfigInterface {

private:
    static ClientType::CONFIG_TYPE configType;
    static ClientType::EXECUTION_TYPE executionType;



private:



public:
    size_t threadPoolSize = 4;

public:
    ClientThreadExecutionConfig() = default;
    ~ClientThreadExecutionConfig(){}

    /**
     * 获取配置类型
     * @return
     */
    ClientType::CONFIG_TYPE getType() const override {
        return ClientThreadExecutionConfig::configType;
    }

    /**
     * 获取执行器类型
     * @return
     */
    ClientType::EXECUTION_TYPE getExecutionType() const override {
        return ClientThreadExecutionConfig::executionType;
    }

};

ClientType::CONFIG_TYPE ClientThreadExecutionConfig::configType = ClientType::CONFIG_TYPE::CLIENT_THREAD_EXECUTION_CONFIG;
ClientType::EXECUTION_TYPE ClientThreadExecutionConfig::executionType = ClientType::EXECUTION_TYPE::CLIENT_THREAD_EXECUTION;